# -*- coding: utf-8 -*-
# @Time        :2025/3/7 20:56
# @Author      :文刀水寿
# @File        : 21_爬虫_解析_jsonpath.py
"""
 @Description :
"""

import json
import jsonpath

obj = json.load(open('21_爬虫_解析_jsonpath.json', 'r', encoding='utf8'))

# 书店所有的书的作者
author_list = jsonpath.jsonpath(obj, '$.store.book[*].author')

# 所有的作者
author_list = jsonpath.jsonpath(obj, '$..author')

# store 下面的所有元素
author_list = jsonpath.jsonpath(obj, '$.store[*]')
author_list = jsonpath.jsonpath(obj, '$.store.*')

# store 里面所有东西的price
author_list = jsonpath.jsonpath(obj, '$.store..price')

# 第三本书
author_list = jsonpath.jsonpath(obj, '$.store.book[2]')

# 最后一本书
author_list = jsonpath.jsonpath(obj, '$.store.book[(@.length-1)]')

# 前俩本书
author_list = jsonpath.jsonpath(obj, '$..book[:2]')
author_list = jsonpath.jsonpath(obj, '$..book[1,2]')

# 条件过滤需要在园括号前加 ？
# 过滤所有包含的版本号
author_list = jsonpath.jsonpath(obj, '$.store.book[?(@.isbn)]')

# 哪本书超过了十块钱
author_list = jsonpath.jsonpath(obj, '$.store.book[?(@.price>10)].title')
print(author_list)
